/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package vo;

import java.io.Serializable;
import javax.persistence.*;
import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;
import org.hibernate.annotations.Fetch;
import org.hibernate.annotations.FetchMode;

@Entity
@Table(name = "subcategoria")
public class SubCategoriaVO implements Serializable{

    @Id
    @SequenceGenerator( name = "cod_sub_categoria", sequenceName = "cod_sub_categoria_seq",allocationSize = 1 )
    @GeneratedValue( strategy = GenerationType.SEQUENCE, generator="cod_sub_categoria")
    @Column(name="cod_sub_categoria", nullable = false)
    private int codSubCategoria;
    
    @ManyToOne(fetch = FetchType.EAGER)
    @JoinColumn(name="cod_categoria", insertable=true, updatable=true)
    @Fetch(FetchMode.JOIN)
    @Cascade(CascadeType.SAVE_UPDATE)
    private CategoriaVO categoria;

    @Column (name="descricao")
    private String descricao;
    @Column (name="ativo")
    private boolean ativo;


    //Contrutor Vazio
    public SubCategoriaVO(){

    }

    //Construtor com Parâmetros
    public SubCategoriaVO(int codSubCategoria,CategoriaVO categoria, String descricao){
        this.setCodSubCategoria(codSubCategoria);
        this.setCategoria(categoria);
        this.setDescricao(descricao);
        this.ativo=true;
    }

    //Métodos Get() e Set()
    public boolean isAtivo() {
        return ativo;
    }

    public void setAtivo(boolean ativo) {
        this.ativo = ativo;
    }

    public int getCodSubCategoria() {
        return codSubCategoria;
    }

    public void setCodSubCategoria(int codCategoria) {
        this.codSubCategoria = codCategoria;
    }

    public String getDescricao() {
        return descricao;
    }

    public void setDescricao(String descricao) {
        this.descricao = descricao;
    }

     public CategoriaVO getCategoria() {
        return categoria;
    }

    public void setCategoria(CategoriaVO categoria) {
        this.categoria = categoria;
    }


}
